New function to set the active row by iter.
authorJonathan Blandford <jrb@redhat.com>
Tue, 14 Oct 2003 20:09:39 +0000 (20:09 +0000)
committerJonathan Blandford <jrb@src.gnome.org>
Tue, 14 Oct 2003 20:09:39 +0000 (20:09 +0000)
Tue Oct 14 16:10:21 2003  Jonathan Blandford  <jrb@redhat.com>

* gtk/gtkcombobox.c (gtk_combo_box_set_active_iter): New function
to set the active row by iter.

* gtk/gtkcombobox.c (gtk_combo_box_get_active_iter): New function
to get the active row by iter.

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkcombobox.c
gtk/gtkcombobox.h

index 97925d39717609b3de69af70068d2b10d05d55b9..45e3897b47fe87acf407db441e146576f5805d14 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Tue Oct 14 16:10:21 2003  Jonathan Blandford  <jrb@redhat.com>
+
+       * gtk/gtkcombobox.c (gtk_combo_box_set_active_iter): New function
+       to set the active row by iter.
+
+       * gtk/gtkcombobox.c (gtk_combo_box_get_active_iter): New function
+       to get the active row by iter.
+
 2003-10-13  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): Don't do
index 97925d39717609b3de69af70068d2b10d05d55b9..45e3897b47fe87acf407db441e146576f5805d14 100644 (file)
@@ -1,3 +1,11 @@
+Tue Oct 14 16:10:21 2003  Jonathan Blandford  <jrb@redhat.com>
+
+       * gtk/gtkcombobox.c (gtk_combo_box_set_active_iter): New function
+       to set the active row by iter.
+
+       * gtk/gtkcombobox.c (gtk_combo_box_get_active_iter): New function
+       to get the active row by iter.
+
 2003-10-13  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): Don't do
index 97925d39717609b3de69af70068d2b10d05d55b9..45e3897b47fe87acf407db441e146576f5805d14 100644 (file)
@@ -1,3 +1,11 @@
+Tue Oct 14 16:10:21 2003  Jonathan Blandford  <jrb@redhat.com>
+
+       * gtk/gtkcombobox.c (gtk_combo_box_set_active_iter): New function
+       to set the active row by iter.
+
+       * gtk/gtkcombobox.c (gtk_combo_box_get_active_iter): New function
+       to get the active row by iter.
+
 2003-10-13  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): Don't do
index 97925d39717609b3de69af70068d2b10d05d55b9..45e3897b47fe87acf407db441e146576f5805d14 100644 (file)
@@ -1,3 +1,11 @@
+Tue Oct 14 16:10:21 2003  Jonathan Blandford  <jrb@redhat.com>
+
+       * gtk/gtkcombobox.c (gtk_combo_box_set_active_iter): New function
+       to set the active row by iter.
+
+       * gtk/gtkcombobox.c (gtk_combo_box_get_active_iter): New function
+       to get the active row by iter.
+
 2003-10-13  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): Don't do
index 97925d39717609b3de69af70068d2b10d05d55b9..45e3897b47fe87acf407db441e146576f5805d14 100644 (file)
@@ -1,3 +1,11 @@
+Tue Oct 14 16:10:21 2003  Jonathan Blandford  <jrb@redhat.com>
+
+       * gtk/gtkcombobox.c (gtk_combo_box_set_active_iter): New function
+       to set the active row by iter.
+
+       * gtk/gtkcombobox.c (gtk_combo_box_get_active_iter): New function
+       to get the active row by iter.
+
 2003-10-13  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): Don't do
index e685751e8bf94c572d6269a310366eeb9e2fb3b4..3632786ae637bccdc29226c81836b5d7a61ebbdb 100644 (file)
@@ -2392,6 +2392,65 @@ gtk_combo_box_set_active (GtkComboBox *combo_box,
   g_signal_emit_by_name (combo_box, "changed", NULL, NULL);
 }
 
+
+/**
+ * gtk_combo_box_get_active_iter:
+ * @combo_box: A #GtkComboBox
+ * @iter: The uninitialized #GtkTreeIter.
+ * 
+ * Set @iter to point to the current active item, if it exists.
+ * 
+ * Return value: %TRUE, if @iter was set
+ *
+ * Since: 2.4
+ **/
+gboolean
+gtk_combo_box_get_active_iter (GtkComboBox     *combo_box,
+                               GtkTreeIter     *iter)
+{
+  GtkTreePath *path;
+  gint active;
+  gboolean retval;
+
+  g_return_val_if_fail (GTK_IS_COMBO_BOX (combo_box), FALSE);
+
+  active = gtk_combo_box_get_active (combo_box);
+  if (active < 0)
+    return FALSE;
+
+  path = gtk_tree_path_new_from_indices (active, -1);
+  retval = gtk_tree_model_get_iter (gtk_combo_box_get_model (combo_box),
+                                    iter, path);
+  gtk_tree_path_free (path);
+
+  return retval;
+}
+
+/**
+ * gtk_combo_box_set_active_iter:
+ * @combo_box: A #GtkComboBox
+ * @iter: The #GtkTreeIter.
+ * 
+ * Sets the current active item to be the one referenced by @iter.
+ * 
+ * Since: 2.4
+ **/
+void
+gtk_combo_box_set_active_iter (GtkComboBox     *combo_box,
+                               GtkTreeIter     *iter)
+{
+  GtkTreePath *path;
+
+  g_return_if_fail (GTK_IS_COMBO_BOX (combo_box));
+
+  path = gtk_tree_model_get_path (gtk_combo_box_get_model (combo_box), iter);
+  g_return_if_fail (path != NULL);
+  g_return_if_fail (gtk_tree_path_get_depth (path) != 1);
+  
+  gtk_combo_box_set_active (combo_box, gtk_tree_path_get_indices (path)[0]);
+  gtk_tree_path_free (path);
+}
+
 /**
  * gtk_combo_box_get_model
  * @combo_box: A #GtkComboBox.
index bb9e0aa7c38b95b3cf35c432442da3cacf011517..4a188a64afd790edd8b3c25273856c8f4fa3a681 100644 (file)
@@ -70,6 +70,10 @@ void          gtk_combo_box_set_column_span_column (GtkComboBox *combo_box,
 gint          gtk_combo_box_get_active       (GtkComboBox     *combo_box);
 void          gtk_combo_box_set_active       (GtkComboBox     *combo_box,
                                               gint             index);
+gboolean      gtk_combo_box_get_active_iter  (GtkComboBox     *combo_box,
+                                             GtkTreeIter     *iter);
+void          gtk_combo_box_set_active_iter  (GtkComboBox     *combo_box,
+                                             GtkTreeIter     *iter);
 
 /* getters and setters */
 GtkTreeModel *gtk_combo_box_get_model        (GtkComboBox     *combo_box);